﻿using SoftwareConsulting.BI11.NumericalMethods.Interfaces;

namespace SoftwareConsulting.BI11.NumericalMethods.Optimization
{
    /// <summary>
    /// Класс вектора, подозрительного на максимум, в методах максимизации многоаргументных функций
    /// </summary>
    public class SuspiciousMaximumVector : SuspiciousOptimalVector
    {
        /// <summary>
        /// Конструктор класса
        /// </summary>
        /// <param name="argument"></param>
        /// <param name="function"></param>
        public SuspiciousMaximumVector(double[] argument, IManyVariableFunction function) : 
            base(argument, function)
        {
        }

        /// <summary>
        /// Возвращает флаг вектора, более подходящего на максимум, чем указанный
        /// </summary>
        /// <param name="otherVector"></param>
        /// <returns></returns>
        public override bool BetterThan(SuspiciousOptimalVector otherVector)
        {
            return this.Value > otherVector.Value;
        }

        /// <summary>
        /// Возвращает как строку
        /// </summary>
        /// <returns></returns>
        protected override sealed string PrintedKey()
        {
            return " max@";
        }
    }
}
